如何使用Matlab绘制常见的K线图(蜡烛图) |
您所在的位置:网站首页 › 1079 日k蜡烛图 › 如何使用Matlab绘制常见的K线图(蜡烛图) |
[email protected],Matlab2018a
关于画K线图,Matlab有一个自带的函数candle,画图效率很高,但是它有个缺点,就是画出来的图和我们平时看到的有所不同,candle画出的图如下所示(这里以中国人保为例): 操作思路如下: (1)我们观察图片可知,图片基本可以分为竖线和矩形部分,矩形分为填充和不填充背景颜色,它们在candle对应的程序也比较容易找到; 竖线: % Plot vertical lines h(1) = plot(ax,indexVertical(:),hiloVertical(:),'Color',color,'AlignVertexCenters','on'); set(ax,'NextPlot','add')矩形: try for i = 1 : numObs h(i+1) = fill(ax, ... [indexLeft(i); indexLeft(i); indexRight(i); indexRight(i)], ... [op(i); cl(i); cl(i); op(i)],colorSet{filledIndex(i)},'Edgecolor',color, ... 'AlignVertexCenters', 'on'); end catch ME throwAsCaller(ME) end(2)接着定义两种颜色(红对阳线,绿对阴线),然后根据K线图的定义进行判断,for循环绘制出不同的颜色。 更改竖线程序: % Plot vertical lines for i = 1:numObs h(1) = plot(ax,indexVertical(:,i),hiloVertical(:,i),'Color',char(clr(i)),'AlignVertexCenters','on'); hold on end更改矩形程序: try for i = 1 : numObs h(i+1) = fill(ax, ... [indexLeft(i); indexLeft(i); indexRight(i); indexRight(i)], ... [op(i); cl(i); cl(i); op(i)],char(clr(i)),'Edgecolor',char(clr(i)), ... 'AlignVertexCenters', 'on');%填充颜色和边缘颜色均需要定义 end catch ME throwAsCaller(ME) end(3)最后利用先前已爬取好的数据,绘制新的K线图(提一句,print函数导出的图片质量很不错,大家可以试试)。 load stock.mat; candle_c(stock(:,1),stock(:,2),stock(:,3),stock(:,4)); title('中国人保(上证:601319)'); print('K线图', '-dpng', '-r300')
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |